# 列表和元组

# 变量就是内存空间，用来表示或存储数据
# 当变量较少时，可以直接定义
# 当变量很多时，就可以利用列表和元组
# 可以用一个变量表示很多数据，类似于C里面的数组，
#
# 列表和元组的区别：
# 列表是可变的，创建好以后随时能改
# 元组是不可变的，如果要改数据，只能重新创建新的元组

# 创建列表：
# 1、直接使用字面值来创建

"""
a = [1, 2, 3, 4]
print(type(a))
"""

# 2、使用list() 来创建
"""
b = list()
print(type(b))
list1 = [1, 2, 3, 4]
list1.pop(2)
print(list1)
"""

# 3、可以在创建列表的时候，在[ ]中指定列表的初始值
#    元素之间使用逗号 ， 分隔，比如：
"""
a = [1, 2, 3, 4]
print(a)
"""

# python中的列表的特点：
# 4、同一列表里可以放不同类型的变量
"""
a = [1, 'hello', True, [4, 5, 6]]
print(a)
"""

# 列表里可以管理很多元素，
# 通过下标访问的方式来获取到列表中的元素
# 使用下标访问列表元素，下标是从0开始计数的，
# 下标访问运算符同样是方括号  []，比如：
"""
a = [1, 2, 3, 4]
print(a[2])
"""

# 6、使用下标修改列表元素
"""
a = [1, 2, 3, 4]
a[2] = 100
print(a)
"""

# 7、超出下标有效范围，就会出现异常
"""
a = [1, 2, 3, 4]
a[4] = 0
"""

# 8、可以使用内建函数 len 来获取列表中的元素个数(或称列表长度)
"""
a = [1, 'hello', True, [4, 5, 6]]
length = len(a)
print(length)
"""

# 对于len函数的说明：
# len的参数可以是字符串，列表，元组，字典，自定义的类  等等
# 比如在字符串中，并不是以斜杠零 \0 为结束计算长度的
# 而且斜杠零 \0 不需要单引号来做转义字符，可直接实现
"""
zifu = "aaa\0cdd"
print(len(zifu))
"""

# 9、python中的下标还能写成负数，比如：
#    例如写成-1，其实等价于 len(a) - 1

a = [1, 2, 3, 4]
print(a[len(a) - 6])


# 可以将a[-2]理解为取得a列表的倒数第二个元素
"""print(a[-2])"""
